package cn.wolfcode.shop.service;

import cn.wolfcode.shop.domain.Property;
import cn.wolfcode.shop.domain.SkuProperty;

import java.util.List;
import java.util.Map;

/**
 * 商品分类属性
 */
public interface ISkuPropertyService {

    /**
     * 查询某个商品类别的属性信息
     * @param catalogId
     * @return
     */
    List<SkuProperty> listByCatalogId(Long catalogId);

    /**
     * 更新属性
     * @param property
     */
    void saveOrUpdate(SkuProperty property);


    /**
     * 删除属性
     * @param id
     */
    void deleteById(Long id);

    /**
     * 统计商品类别的属性个数
     * @param catalogId
     * @return
     */
    Integer selectForCountByCatalogId(Long catalogId);

    /**
     *  获取某个商品类别对应的属性及属性下的下拉值
     * @param catalogId
     * @return
     */
    List<SkuProperty> listPropertysWithValues(Long catalogId);

    /**
     * 根据id获取属性对象
     * @param skuPropertyId
     * @return
     */
    SkuProperty getById(Long skuPropertyId);

    /**
     * 生成sku
     * @param skuPropertyIds
     * @return
     */
    List<Map> generateSku(Long[] skuPropertyIds);
}
